The present invention relates to data processing by digital computer in a service oriented architecture, and more particularly to generation of customized client proxies.
In a client/server computer system, a server typically hosts a service that is accessed by a client. Communications between a client and a server generally require that the technologies of each are compatible with one another such that the client can understand communications from the server, and vice versa. For example, over the Internet, a web browser may use the Secure Sockets Layer (SSL) protocol to communicate with a web application server. To communicate using SSL, both the client and server on which the web browser and web application server, respectively, run should support SSL.
One technique for assisting communications between a client and a server involves the use of a server proxy (not to be confused with a proxy server), which can act as an intermediary between a client and a server by modifying communications received from or sent to a client such that the communications can be understood by a server or client, respectively. As examples, a server proxy can assist communications by receiving and modifying messages received from a client such that the messages are understood by a server, or by formatting and sending messages to a client such that the messages are understood by the client.
Similar, in some aspects, to a server proxy is a client proxy. In one aspect, a client proxy is similar, as a client proxy can assist communications between a client and a server by working as an intermediary between the two. In some aspects the client proxy differs. For example, a client proxy is typically a client-side proxy, as opposed to being server-side. A client proxy can act as an intermediary between a client and a server by modifying communications received from or sent to a server such that the communications can be understood by a client or server, respectively. As an example, a client proxy can format remote procedure calls and send them to a server using a protocol that is compatible with the server. As a result of the client-side nature of a client proxy, applications on the server appear from a client's perspective as if they reside on the client-side of a client/server computer system. By its nature a client proxy is hosted at the client-side, whereas the server proxy is hosted at the server side. Furthermore, a client proxy may be specific to a fixed client platform in terms of hardware, database, operating system or programming language and may bound to a well-defined runtime environment (e.g., application embedment, graphical interface, and the like). In contract, a server proxy is intended to service a broad, possibly heterogeneous client landscape: It enables the management of client platform heterogeneity, which can include management of hardware, databases, operating systems, or programming languages, through conversion processes that are server-side hosted and interposed between the client and the server.